#include "npdm_patterns.h"
#include "npdm_sweep.h"
#include "npdm_operators.h"
#include "npdm_tester.h"

int main() {
  int nsites = 4;
  int order = 4;

  Npdm_patterns npdm_patterns(order);
  Npdm_sweep npdm_sweep(order, nsites, npdm_patterns);

  std::cout << "===============================================================\n";
  npdm_sweep.dmrg_sweep();
//  std::cout << "===============================================================\n";
//  npdm_sweep.print_elements();

  Npdm_tester tester(order, nsites, npdm_sweep);
  tester.test_if_fully_built(order);
  std::cout << "===============================================================\n";

  return 0;
}

